// Copyright 2011 Google Inc. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// The FileDescriptorProto message, which is defined in descriptor.proto, can
// describe a complete .proto file. That is, we could generate a valid .proto
// file from a message.
// The function signature is simple. It takes a FileDescriptorProto message and
// prints a .proto file content to a string. However, please note that it's
// only partially implemented and it's not ready for general use.

#ifndef GOOGLE_PROTOBUF_EXPECTATION_DESCRIPTOR_PROTO_PRINTER_H_
#define GOOGLE_PROTOBUF_EXPECTATION_DESCRIPTOR_PROTO_PRINTER_H_

#include <string>

namespace google {
namespace protobuf {

class FileDescriptorProto;

}  // namespace protobuf
}  // namespace google

namespace google {
namespace protobuf_expectation {

bool PrintFileDescriptorProtoToString(
    const protobuf::FileDescriptorProto& file_descriptor,
    const std::string& generated_by,
    std::string* output);

}  // namespace protobuf_expectation
}  // namespace google

#endif  // GOOGLE_PROTOBUF_EXPECTATION_DESCRIPTOR_PROTO_PRINTER_H_
